package com.css.dzj.dzjap.modules.publick.service;


import com.css.dzj.dzjap.modules.publick.entity.ApPublicEntity;
import com.querydsl.core.QueryResults;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface PublicService {

    /**
     * 通过主键Id查询公开公告表
     */
    ApPublicEntity getPublick(String publicId);

    /**
     * 添加公开公告表
     */
    String addPublick(ApPublicEntity pub);

    /**
     * 修改公开公告表
     */
    void update(ApPublicEntity pub);
    /**
     * 修改公开公告表
     */
    void updatePublic(ApPublicEntity pub);
    /**
     * 审批公开公告表
     */
    void approvalPublick(ApPublicEntity pub);
    /**
     * 删除公开公告表
     */
    Boolean deletePublick(String publicId);

    /**
     * 分页查询所有公开公告表
     */
    QueryResults<ApPublicEntity> getAllPublick(Pageable pageable);

    /**
     *多条件分页查询所有公开公告表
     */
    QueryResults<ApPublicEntity> getAllConPublick(Pageable pageable, String title, String createUser, String publicType, String publicState);

    /**
     * 添加拟制公告信息通过关联ID
     */
    String addGlPublick(ApPublicEntity pub);

    /**
     * 添加黑名单拟制公告信息通过关联ID
     */
    String addGlRePublick(ApPublicEntity pub);

    /**
     * 通过关联ID查询公开公告表
     */
    ApPublicEntity getGlPublick(String relationId);

    /**
     * 通过关联ID查询公开公告表
     */
    ApPublicEntity getGlTYPublick(String relationId, String enterType);

    /**
     * 添加拟制公告信息通过关联评价单位ID
     */
    String addGlPjPublick(ApPublicEntity pub, String enterpriseCredittype);

    /**
     *  添加黑名单拟制公告信息通过关联评价单位Id
     */
    String addGlPjRePublick(ApPublicEntity pub, String enterpriseCredittype);

    /**
     *  添加拟制公告信息通过关联建设单位ID
     */
    String addGlJsPublick(ApPublicEntity pub, String enterpriseCredittype);

    /**
     *  添加黑名单拟制公告信息通过关联建设单位Id
     */
    String addGlJsRePublick(ApPublicEntity pub, String enterpriseCredittype);

    /**
     * 带有标题参数查询list
     * @author wt
     * @date 2020\3\10 0010
     */
    List titleList(String title, String publicType, String isPublic);

    /**
     * 不带参数查询list
     * @author wt
     * @date 2020\3\10 0010
     */
    List allList(String publicType, String isPublic);

    /**
     *通过id查询详情
     * @author wt
     * @date 2020\3\12 0012
     */
    ApPublicEntity getEntity(String id);

    /* 对外提供接口*/
    List<ApPublicEntity> getApList();
}
